home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Adobe Graphics & Publishing SDK 1996 December
/
Adobe Graphics & Publishing SDK 1996 December.iso
/
pc
/
pm65sdk
/
sourcecode
/
includes
/
ciinterfacemanager.h
< prev
next >
Wrap
C/C++ Source or Header
|
1996-11-18
|
2KB
|
61 lines
/**[f******************************************************************
*
* IntfMgr.h -- Interface Manager
*
* Copyright 1996(c) Adobe Systems, Inc.
*
*
* Interface manager. It will handle Acquire and Release of
* PageMaker interfaces.
* $Revision: 1.1 $
*
* $Author: pnorton $
* $Date: 27 Aug 1996 15:03:44 $
* $Log: U:/pmsdk/includes/vcs/ciintmgr.hv $
*
*
*
*
**f]******************************************************************/
#ifndef __INTFMGR_H
#define __INTFMGR_H
#include "PMTypes.h"
typedef void *(CIInterfaceFactory)(char *);
class CIInterfaceManager
{
public:
// Plugin can acquire pre-defined interface from PageMaker. PageMaker pre-defined
// interface are id based. The following methods should be used by plugin to
// acquire and release pre-defined PageMaker interfaces. SHOULD ONLY BE CALLED
// TO ACQUIRE AND RELEASE PRE-DEFINED PAGEMAKER INTERFACES.
virtual PMErr AcquirePMInterface(unsigned long id, void **ppInterface) = 0;
virtual PMErr ReleasePMInterface(void *pInterface) = 0;
// Plugin can acquire interfaces that are published by plugins. If you acquire an
// interface by name. You should also free the interface by name. Plugin that owns
// the interface will receive a kPMAcquireInterface message to provide the
// interface when the following AcquirePMInterface method is called. Plugin that
// owns the interface will receive a kPMReleaseInterface message when the following
// ReleasePMInterface method is called.
virtual PMErr AcquirePMInterface(char *pInterfaceName, void **ppInterface) = 0;
virtual PMErr ReleasePMInterface(char *pInterfaceName, void **ppInterface) = 0;
// Plugin can add and remove interface name to PageMaker. The published interface
// can be acquired through the AcquirePMInterface (by name). Plugin must call
// RemovePMInterface to remove an interface name from PageMaker. Only plugin that
// owns the interface can remove the interface from PageMaker.
virtual PMErr AddPMInterface(char *pInterfaceName)=0;
virtual PMErr RemovePMInterface(char *pInterfaceName) = 0;
};
typedef struct _PMInterface {
char *pInterfaceName;
void *pInterface;
} PMInterface, *LPPMInterface;
#endif